//****************************************************
//Binärbaum
//Autor: Timo Reichert
//
//Kunde: Herr Falke
//Erstelldatum: 22.10.2013 v.1.0.0
//
//Änderungen: 
//
//****************************************************
package binarytree;


import binarytree.controller.Controller;
import binarytree.model.Tree;
import binarytree.view.View;
import java.awt.EventQueue;

// *****************************************************
// Klasse : BinaryTree zum Erzeugen der Programmoberfläche
// Eingabe : Keine
// Rückgabe: Keine
// Ausgabe : Initialisieren und Durchlauf der Spieleparameter
// *****************************************************
public class BinaryTree {

    // Globale Variablendeklaration
    // Standardgröße des Programmfensters
    private final int FRAME_WIDTH = 1024;
    private final int FRAME_HEIGHT = 768;

    // *****************************************************
    // Main-Methode zur Erzeugung des Baums(Model), der GUI(View) und der Schnittstelle(Controller) 
    // Eingabe : Java Standardparameter
    // Rückgabe: Keine
    // Ausgabe : Keine
    // *****************************************************
    public static void main(String[] args) {
        // Anpassung des Fensterdesigns der GUI
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(BinaryTree.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(BinaryTree.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(BinaryTree.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(BinaryTree.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        // Start des Programms in eigenem Thread 
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    // Erzeugen des Baum-Objektes
                    Tree tree = new Tree();
                    // Erzeugen des GUI-Objektes
                    View frame = new View();
                    // Aufruf der GUI
                    frame.setVisible(true);
                    // Erzeugen der Schnittstelle zwischen BAUM und GUI mit Übergabe beider Objekte
                    Controller controller = new Controller(tree, frame);
                } catch (Exception e) {
                }
            }
        });

    }

}
